1. Field of the Invention
The present invention relates to computer-implemented systems and methods for drawing images, and in particular to a computer-aided drafting tool for acquiring and unacquiring alignment and extension points on existing drawing objects.
2. Description of the Related Art
Computer Aided Design (CAD) and other drawing programs allow the preparation and editing of machine drawings, schematic drawings, and artwork. Typically, the user creates these drawings with the use of a library of objects and a number of drawing tools. These drawing tools allow the user to define and edit lines, polygons, ovoids, and other objects.
One useful feature in such drawing programs is the ability to extend an existing object or line or to align two or more objects. In the case of extending an existing object or line, this is typically accomplished by selecting an extension point from a group of interesting points on the object, and manipulating a cursor to define the extension. In the case of alignment, this can be accomplished by selecting the objects to be aligned, and invoking an alignment command. Alternatively, alignment may be accomplished by acquiring one or more alignment points on existing objects to define alignment lines, then grabbing and moving objects within a snap distance of the alignment lines. When the objects are released, they snap into alignment with the alignment points defined on the existing objects. In some cases, the user may desire to align objects in accordance with one or a number of different interesting points known as alignment or reference points on the object. For example, the user may want to align an endpoint of a first line with a midpoint of a second line so that the endpoint and the midpoint have the same x-coordinate.
In either case, the alignment or extension of objects requires the user to select alignment or extension points on the object. Typically, the set of interesting points on an object is a subset of the points describing the shape of the object. For example, for a linear object, the set of interesting points typically comprises the two endpoints and a mid point, but does not include all of the data points in between. Since not all points on an object are available for alignment and/or extension purposes, drawing programs typically acquire and display interesting points on the object as the user moves the cursor over the object. Some drawing programs also require that the user move the cursor within a specified distance of the interesting point before acquisition takes place, and others show the interesting point when the cursor is along an alignment or extension path.
One of the problems with the current implementations of align and extend functionality is that as the user moves the cursor from one place on the drawing to another on the display, a large number of extension lines and interesting points flash about on the screen. This flashing problem is not only distracting, it can make it difficult to see the points the user is truly interested in, and can unnecessarily add to the computational burden of the computer hosting the drawing program. What is needed is a method of acquiring and unacquiring interesting points which solves this flashing problem. The present invention satisfies that need.